/**
 * 
 */
package ar.edu.utn.frgp.banco.dao.dbutil;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import ar.edu.utn.frgp.banco.dao.connection.ConnectionHandler;
import ar.edu.utn.frgp.banco.dao.connection.IConnectionHandler;

/**
 * @author gvolpe
 * @since 25/04/2012 10:27:59
 */
public class CreateTables {

	public static void create() {
		
		Statement st = null;
		
		IConnectionHandler handler = new ConnectionHandler();
		Connection cn = handler.getConnection();
		
		try {
			st = cn.createStatement();
			
			st.executeUpdate("CREATE TABLE Cliente (dni INT, nombre VARCHAR(50), apellido VARCHAR(50), direccion VARCHAR(70), email VARCHAR(80))");
			
			st.executeUpdate("CREATE TABLE Cuenta (nroCuenta BIGINT, idTipoCuenta INT, idEstado INT, saldo DECIMAL, descubierto DECIMAL)");
			
			st.executeUpdate("CREATE TABLE TipoCuenta (idTipoCuenta INT, descripcion VARCHAR(30))");
			
			st.executeUpdate("CREATE TABLE EstadoCuenta (idEstado INT, descripcion VARCHAR(30))");
			
			st.executeUpdate("CREATE TABLE CuentasXCliente (dni INT, nombre VARCHAR(50), apellido VARCHAR(50))");			
		} catch (SQLException e) {
			System.out.println("Error al crear tablas.");
			e.printStackTrace();			
		} finally {
			handler.closeResources(st, cn);
		}
	}
	
	/**
	 * Inserta datos basicos necesarios del Banco
	 * */
	public static void insertData() {
		
		Statement st = null;
		
		IConnectionHandler handler = new ConnectionHandler();
		Connection cn = handler.getConnection();
		
		try {
			st = cn.createStatement();
			
			st.executeUpdate("INSERT INTO TipoCuenta VALUES (1, 'Caja de Ahorros')");
			st.executeUpdate("INSERT INTO TipoCuenta VALUES (2, 'Cuenta Corriente')");
			
			st.executeUpdate("INSERT INTO EstadoCuenta VALUES (1, 'Habilitada')");
			st.executeUpdate("INSERT INTO EstadoCuenta VALUES (2, 'Inhabilitada')");
		} catch (SQLException e) {
			System.out.println("Error al insertar datos.");
			e.printStackTrace();			
		} finally {
			handler.closeResources(st, cn);
		}		
	}
		
}
